package qflog

import (
	"github.com/natefinch/lumberjack"
	"go.uber.org/zap"
	"go.uber.org/zap/zapcore"
)

// Sugare export var
var Sugare *zap.SugaredLogger

// LumberJackLogger export var
var LumberJackLogger *lumberjack.Logger

// InitLog def
func InitLog() {
	// 配置sugaredLogger
	// file, _ := os.Create("./server.log")

	LumberJackLogger = &lumberjack.Logger{
		Filename: "./log/server.log", // 日志输出文件
		MaxSize:  1,                  // 日志最大保存10M
		// MaxBackups: 5,  // 就日志保留5个备份
		MaxAge:   30,   // 最多保留30个日志 和MaxBackups参数配置1个就可以
		Compress: true, // 自导打 gzip包 默认false
	}

	// writer := zapcore.AddSync(os.Stdout)
	writer := zapcore.AddSync(LumberJackLogger)

	// 格式相关的配置
	encoderConfig := zap.NewProductionEncoderConfig()
	encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder   // 修改时间戳的格式
	encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder // 日志级别使用大写显示
	encoder := zapcore.NewConsoleEncoder(encoderConfig)

	core := zapcore.NewCore(encoder, writer, zapcore.InfoLevel)
	logger := zap.New(core, zap.AddCaller()) // 增加caller信息
	Sugare = logger.Sugar()

	Sugare.Infof("zap log init ok.")
}
